zz_

src/fibonacci.js

zzmq.dev@gmail.com[dev3]/mathkit[add-fibonacci-n-function-returns-nth] / src / fibonacci.js @ f12756cf Download
Ladder Summary
  • file Add a Fibonacci function with export and tests
/**
 * Returns the nth Fibonacci number.
 *
 * The sequence is defined as:
 *   F(0) = 0
 *   F(1) = 1
 *   F(n) = F(n‑1) + F(n‑2) for n > 1
 *
 * @param {number} n - Non‑negative integer index.
 * @returns {number} The nth Fibonacci number, or NaN for invalid input.
 */
export function fibonacci(n) {
  if (typeof n !== "number" || !Number.isInteger(n) || n < 0) {
    return NaN;
  }
  if (n === 0) return 0;
  let a = 0,
    b = 1;
  for (let i = 1; i < n; i++) {
    const next = a + b;
    a = b;
    b = next;
  }
  return b;
}